mpc85xx: add support for Watchguard Firebox T10-W, T15(-W)
authorShine <[email protected]>
Thu, 24 Oct 2024 12:19:43 +0000 (14:19 +0200)
committerHauke Mehrtens <[email protected]>
Wed, 10 Dec 2025 22:48:48 +0000 (23:48 +0100)
commitbe7aa5bda40ee05b1dd0b4f4a1bf88e653ef875a
treeb01bf29dc0b20ff9a0a16c3131cd709f9d2830fa
parent15ef024805f15fd1495f9cfa129a3e29d5b349ff
mpc85xx: add support for Watchguard Firebox T10-W, T15(-W)

This commit adds support for the Watchguard Firebox models
T10-W, T15 and T15-W.

CPU:      Freescale P1010
RAM:      512MB (T10) / 1024MB (T15)
Flash:    1MB SPI-NOR, 512MB NAND (T10) / 1024MB NAND (T15)
WiFi:     802.11abgn 2T2R AR9582 based Mini-PCIe card (-W models only)
Ethernet: 3x GBE (via AR8033 PHY)
LEDs:     7x hard-wired (6x LAN, 1x Power)
          4x GPIO single-colored (Attn/Status/Mode/Failover)
          1x GPIO dual-colored (2.4/5G WiFi, -W models only)
Serial:   RJ45, Cisco pinout, 115200/8N1
Other:    Battery backed RTC
          Atmel TPM 1.2 chip (unsupported)

Based on 35f6d79, which introduced Watchguard Firebox T10 support.

The T10 and T15 are identical hardware, with the exception of the T15
having twice the flash and RAM size.

The T10-W and T15-W models have their Mini-PCIe slot populated with an ath9
(AR9582) based WiFi card. The slot is either unpopulated or empty for
non-WiFi models. All required drivers are present by default on the mpc85xx
target, so T10/T10-W resp. T15/T15-W can use the same OpenWrt image.

This commit also introduces the zImage loader from 7d768a9 to boot the
kernel. This is required, since the U-Boot version used in these devices
appears to have a hard limit of 16MB for the kernel size it can handle. The
current kernel size is around 17MB, though, due to kernel page alignment
required for memory protection.

Installation (replaces previous instructions for T10):

1. If the U-Boot password is known, proceed with step 2.

   If the U-Boot password is unknown, dump the NOR flash using a SPI
   programmer and patch the unknown password to a known one. You can use
   blocktrron's Python script:

   https://github.com/blocktrron/t10-uboot-patcher/

   This script will patch the password to '1234' (without quotes).

   Alternatively, you can search for the hashed password in the NOR dump
   yourself and overwrite it with a known one. The SHA1 hash is:

   E597301A1D89FF3F6D318DBF4DBA0A5ABC5ECBEA

   Write the patched NOR dump back to the device.

2. Connect the device via serial cable, power it on and interrupt
   the boot process by pressing Ctrl+C. Enter the U-Boot password to access
   the CLI.

3. (Optional) Populate the uboot-env partition by entering:

   saveenv

   This will allow you to use uboot-envtools from within OpenWrt later,
   e.g. to increase the loadable kernel size.

   The default loadable kernel size is 5MB, the compressed kernel size at
   the time of this commit is 3.1MB.

4. Serve the initramfs OpenWrt image from a TFTP server at 10.0.1.13/24,
   connected to eth0 (WAN) of the device. File name must be 'uImage'. Boot
   with:

   tftpboot; bootm;

   Make sure to use the correct image for your device (T10 resp. T15)!

5. After booting, connect to OpenWrt on eth1 (LAN) via SSH. Verify
   that the UBI partiton is mtd7, format it and install the sysupgrade
   image.

   $ cat /proc/mtd
   $ ubiformat /dev/mtd7 -y
   $ sysupgrade -n <path to sysupgrade.bin>

6. The device should now boot OpenWrt from NAND flash. Enjoy.

Back to stock:

Use the vendor recovery procedure.

Stock recovery might also be necessary in case you have accidentally used
the fw_setenv command from within OpenWrt without using saveenv in U-Boot
first.

In order to use the vendor firmware recovery procedure, the NAND partitions
mtd3 to mtd6 must remain intact. Make sure not to overwrite them, or keep
dumps of them for later recovery.

Signed-off-by: Shine <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/16776
Signed-off-by: Hauke Mehrtens <[email protected]>
15 files changed:
package/boot/uboot-tools/uboot-envtools/files/mpc85xx
target/linux/mpc85xx/base-files/etc/board.d/02_network
target/linux/mpc85xx/base-files/lib/upgrade/platform.sh
target/linux/mpc85xx/config-6.12
target/linux/mpc85xx/files/arch/powerpc/boot/dts/firebox-t15.dts [new file with mode: 0644]
target/linux/mpc85xx/files/arch/powerpc/boot/dts/firebox-t1x.dtsi
target/linux/mpc85xx/files/arch/powerpc/platforms/85xx/firebox_t10.c [deleted file]
target/linux/mpc85xx/files/arch/powerpc/platforms/85xx/firebox_t1x.c [new file with mode: 0644]
target/linux/mpc85xx/image/p1010.mk
target/linux/mpc85xx/p1010/config-default
target/linux/mpc85xx/p1010/target.mk
target/linux/mpc85xx/patches-6.12/108-powerpc-85xx-firebox-t10-support.patch.patch [deleted file]
target/linux/mpc85xx/patches-6.12/108-powerpc-85xx-firebox-t10-t15-support.patch [new file with mode: 0644]
target/linux/mpc85xx/patches-6.12/109-powerpc-85xx-add-ws-ap3715i-support.patch
target/linux/mpc85xx/patches-6.12/111-powerpc-85xx-hpe-msm-support.patch